/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.core.repository.entity;

import com.gitee.peigenlpy.actable.annotation.Column;
import com.gitee.peigenlpy.actable.annotation.Index;
import com.gitee.peigenlpy.actable.annotation.Table;
import com.gitee.peigenlpy.actable.annotation.Unique;
import com.gitee.peigenlpy.actable.constants.MySqlCharsetConstant;
import com.gitee.peigenlpy.actable.constants.MySqlEngineConstant;
import com.gitee.peigenlpy.actable.constants.MySqlTypeConstant;
import info.peigen.hotpot.common.core.enums.YesOrNo;
import info.peigen.hotpot.component.data.repository.beetlsql.entity.AbstractCreateTimeEntity;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;

import java.util.Date;

/**
 * <b>(CustomerAuthenticationBaseEntity)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/8/2
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
@Table(name = "customer_authentication_base", comment = "客户实名认证信息表", charset = MySqlCharsetConstant.UTF8MB4, engine = MySqlEngineConstant.InnoDB)
@org.beetl.sql.annotation.entity.Table(name = "customer_authentication_base")
public class CustomerAuthenticationBaseEntity extends AbstractCreateTimeEntity {
    @Column(name = "customer_id", type = MySqlTypeConstant.VARCHAR, length = 30, isNull = false, comment = "customerId")
    @Unique(value = "customerId", columns = "customer_id")
    @org.beetl.sql.annotation.entity.Column("customer_id")
    String  customerId;
    @Column(name = "sex", type = MySqlTypeConstant.VARCHAR, length = 20, comment = "性别")
    @org.beetl.sql.annotation.entity.Column("sex")
    String  sex;
    @Column(name = "native_place", type = MySqlTypeConstant.VARCHAR, length = 40, comment = "籍贯")
    @org.beetl.sql.annotation.entity.Column("native_place")
    String  nativePlace;
    @Column(name = "birthday", type = MySqlTypeConstant.VARCHAR, length = 40, comment = "出生日期")
    @org.beetl.sql.annotation.entity.Column("birthday")
    String  birthday;
    @Column(name = "address", type = MySqlTypeConstant.VARCHAR, length = 600, comment = "地址")
    @org.beetl.sql.annotation.entity.Column("address")
    String  address;
    @Column(name = "enterprise_business_license", type = MySqlTypeConstant.VARCHAR, length = 600, comment = "企业营业执照图片")
    @org.beetl.sql.annotation.entity.Column("enterprise_business_license")
    String  enterpriseBusinessLicense;
    @Column(name = "enterprise_name", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "企业名称")
    @org.beetl.sql.annotation.entity.Column("enterprise_name")
    String  enterpriseName;
    @Column(name = "enterprise_english_name", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "企业英文名称")
    @org.beetl.sql.annotation.entity.Column("enterprise_english_name")
    String  enterpriseEnglishName;
    @Column(name = "uniform_social_credit_code", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "统一社会信用代码")
    @org.beetl.sql.annotation.entity.Column("uniform_social_credit_code")
    String  uniformSocialCreditCode;
    @Column(name = "enterprise_type", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "企业类型;INDIVIDUAL_LICENSE:个体营业执照,SOLO_PROPRIETORSHIP:个人独资企业,LIMITED_LIABILITY_COMPANY:有限责任公司,SINO_FOREIGN_JOINT_VENTURE:中外合资企业,FOREIGN_ENTERPRISE:外资企业")
    @Index(value = "certEnterType", columns = "enterprise_type")
    @org.beetl.sql.annotation.entity.Column("enterprise_type")
    String  enterpriseType;
    @Column(name = "business_scale", type = MySqlTypeConstant.VARCHAR, length = 400, comment = "企业规模、人数")
    @org.beetl.sql.annotation.entity.Column("business_scale")
    String  businessScale;
    @Column(name = "business_scope", type = MySqlTypeConstant.VARCHAR, length = 400, comment = "经营范围")
    @org.beetl.sql.annotation.entity.Column("business_scope")
    String  businessScope;
    @Column(name = "business_area", type = MySqlTypeConstant.VARCHAR, length = 400, comment = "业务经营国家/地区")
    @org.beetl.sql.annotation.entity.Column("business_area")
    String  businessArea;
    @Column(name = "registered_capital", type = MySqlTypeConstant.VARCHAR, length = 40, comment = "注册资本金")
    @org.beetl.sql.annotation.entity.Column("registered_capital")
    String  registeredCapital;
    @Column(name = "establishment_date", type = MySqlTypeConstant.VARCHAR, length = 40, comment = "成立日期")
    @org.beetl.sql.annotation.entity.Column("establishment_date")
    Date    establishmentDate;
    @Column(name = "operating_period", type = MySqlTypeConstant.VARCHAR, length = 40, comment = "营业期限")
    @org.beetl.sql.annotation.entity.Column("operating_period")
    Date    operatingPeriod;
    @Column(name = "operating_period_of_validity_long_term", type = MySqlTypeConstant.VARCHAR, length = 12, comment = "营业期限是否长期有效")
    @org.beetl.sql.annotation.entity.Column("operating_period_of_validity_long_term")
    YesOrNo operatingPeriodOfValidityLongTerm;
    @Column(name = "register_place", type = MySqlTypeConstant.VARCHAR, length = 200, comment = "注册地")
    @org.beetl.sql.annotation.entity.Column("register_place")
    String  registerPlace;
    @Column(name = "holding_account_applying_image", type = MySqlTypeConstant.VARCHAR, length = 600, comment = "手持开户申请表")
    @org.beetl.sql.annotation.entity.Column("holding_account_applying_image")
    String  holdingAccountApplyingImage;
    @Column(name = "holding_account_applying_origin_image", type = MySqlTypeConstant.VARCHAR, length = 600, comment = "手持开户申请表（原件）")
    @org.beetl.sql.annotation.entity.Column("holding_account_applying_origin_image")
    String  holdingAccountApplyingOriginImage;
    @Column(name = "is_business_register", type = MySqlTypeConstant.VARCHAR, length = 12, comment = "实际经营地址-是否与注册地相同")
    @org.beetl.sql.annotation.entity.Column("is_business_register")
    YesOrNo isBusinessRegister;
    @Column(name = "business_province", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "实际经营地址:省/州")
    @org.beetl.sql.annotation.entity.Column("business_province")
    String  businessProvince;
    @Column(name = "business_province_code", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "实际经营地址:省/州code")
    @org.beetl.sql.annotation.entity.Column("business_province_code")
    String  businessProvinceCode;
    @Column(name = "business_city", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "实际经营地址:城市")
    @org.beetl.sql.annotation.entity.Column("business_city")
    String  businessCity;
    @Column(name = "business_city_code", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "实际经营地址:城市Code")
    @org.beetl.sql.annotation.entity.Column("business_city_code")
    String  businessCityCode;
    @Column(name = "business_district", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "实际经营地址:区县")
    @org.beetl.sql.annotation.entity.Column("business_district")
    String  businessDistrict;
    @Column(name = "business_district_code", type = MySqlTypeConstant.VARCHAR, length = 100, comment = "实际经营地址:区县Code")
    @org.beetl.sql.annotation.entity.Column("business_district_code")
    String  businessDistrictCode;
    @Column(name = "business_street", type = MySqlTypeConstant.VARCHAR, length = 200, comment = "实际经营地址:街道信息")
    @org.beetl.sql.annotation.entity.Column("business_street")
    String  businessStreet;

    public CustomerAuthenticationBaseEntity(String customerId) {
        this.customerId = customerId;
    }
}